package cn.cvs.dao;

//import cn.cvs.entity.StorageRecord;
import cn.cvs.entity.StorageRecord;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StorageRecordMapper {
    /** 分页查询
     * @param
     * @return null
     * @author Lenovo
     * @date 2025/5/21
     * @time 14:22
     */
    List<StorageRecord> selectList(@Param("goodsName") String goodsName,
                                   @Param("supplierId") Integer supplierId,
                                   @Param("payStatus") Integer payStatus,
                                   @Param("pageBegin") Integer pageBegin,
                                   @Param("pageSize") Integer pageSize);

    /** 定义selectCount查询总条数的方法
     * @param
     * @return null
     * @author Lenovo
     * @date 2025/5/21
     * @time 14:31
     */
    int selectCount(@Param("goodsName") String goodsName,
                    @Param("supplierId") Integer supplierId,
                    @Param("payStatus") Integer payStatus);

    /** 根据ID查询入库记录信息,定义selectById的方法
     * @param
     * @return null
     * @author Lenovo
     * @date 2025/5/21
     * @time 15:47
     */
    StorageRecord selectById(@Param("id") Integer id);

    /** 根据用户ID删除入库记录信息
     * @param
     * @return null
     * @author Lenovo
     * @date 2025/5/21
     * @time 16:42
     */
    int deleteById(@Param("id") Integer id);


    /**
     * @description:用户查询功能
     * @author: liu xi
     * @param: * @param name
     * @param supId
     * @param payStatus
     * @date: 2025/4/15 19:34
     * @return: java.util.List<cn.cvs.entity.StorageRecord>
     */
//    List<StorageRecord> selAll(@Param("name") String name,
//                        映射器的接口如何接收多个参数 -->p129eeeeeeeeeeeee
//                             用注解@param("name")指明其后面的参数name需要和
//                             Mapper.xml映射文件中相应SQL语句中的#{name}对应
//                        注意：(1) #{参数名}是一个占位符
//                             (2) 它对应着映射器接口方法中传入的参数  一般是对应dao(Mapper)层接口中的方法
//                             (3) 映射器接口方法传入的参数是从调入该方法的地方传入的  一般是对应测试类中的方法
//                               @Param("supId") Integer supId,
//                               @Param("payStatus") String payStatus);
}
